1. Field of the Disclosure
The present disclosure relates to reservations of resources within a compute environment such as a cluster or grid and more specifically to a system and method of providing a co-allocation reservation spanning different resource types based on completion time and/or the relative machine or resource speed of the resources that are computing submitted jobs.
2. Introduction
There are challenges in the complex process of managing the consumption of resources within a compute environment such as a grid, compute farm or cluster of computers. Grid computing may be defined as coordinated resource sharing and problem solving in dynamic, multi-institutional collaborations. Many computing projects require much more computational power and resources than a single computer may provide. Networked computers with peripheral resources such as printers, scanners, I/O devices, storage disks, scientific devices and instruments, etc. may need to be coordinated and utilized to complete a task. The term compute resource generally refers to computer processors, network bandwidth, and any of these peripheral resources as well. Other resources such as license authorization to use software may also be a resource. A compute farm may comprise a plurality of computers coordinated for such purposes of handling Internet traffic. The web search website Google® has a compute farm used to process its network traffic and Internet searches.
Grid/cluster resource management generally describes the process of identifying requirements, matching resources to applications, allocating those resources, and scheduling and monitoring grid resources over time in order to run grid applications or jobs submitted to the compute environment as efficiently as possible. Each project or job will utilize a different set of resources and thus is typically unique. For example, a job may utilize computer processors and disk space, while another job may require a large amount of network bandwidth and a particular operating system. In addition to the challenge of allocating resources for a particular job or a request for resources, administrators also have difficulty obtaining a clear understanding of the resources available, the current status of the compute environment and available resources, and real-time competing needs of various users. One aspect of this process is the ability to reserve resources for a job. A cluster manager will seek to reserve a set of resources to enable the cluster to process a job at a promised quality of service.
General background information on clusters and grids may be found in several publications. See, e.g., Grid Resource Management, State of the Art and Future Trends, Jarek Nabrzyski, Jennifer M. Schopf, and Jan Weglarz, Kluwer Academic Publishers, 2004; and Beowulf Cluster Computing with Linux, edited by William Gropp, Ewing Lusk, and Thomas Sterling, Massachusetts Institute of Technology, 2003.
The parent case to this application provides details regarding the basic computing environment and the context of co-allocating resources spanning different resource types. In the parent application, reservations are calculated or reservation ranges are calculated by looking at when resources become available looking at the wall clock limit associated with a request and then translating availability ranges into start ranges by looking at the various times during which at a request could start and still meet its wall time limit. FIGS. 2A and 2B illustrate a process of analyzing availability ranges of various nodes and then identifying start time ranges associated with when a job or a portion of a job can begin to consume resources. This processing may not fully analyze the compute environment such that full utilization of the resources in the environment is achieved. What is needed is further improvement in the area of analyzing a compute environment to co-allocate resources of different types.